Object.extend = function (destination, source) {
    for (var property in source)
        destination[property] = source[property];
    return destination;
};
Object.prototype.mix = function (sub) {
    sub.call(this);
    var temp = Object.extend({}, sub.prototype);
    temp.__proto__ = this.__proto__;
    this.__proto__ = temp
};
